class Solution:
    def myAtoi(self, s: str) -> int:
        s=s.strip()
        if s=="":
            return 0
        sign=-1 if s[0]=='-' else 1
        o=1 if s[0]=='-' or s[0]=='+' else 0
        base=ord('0')
        temp=[]
        while  o<len(s) and ord(s[o])<=base+9 and ord(s[o])>=base:
            temp.append(int(s[o]))
            o+=1
        if not temp:
            return 0
        total=sum([val*(10**(len(temp)-i-1)) for i,val in enumerate(temp)])
        if total>=2**31:
            if sign==1:
                total=2**31-1
            else:
                total=2**31
        return total*sign

'''
执行用时：
48 ms
, 在所有 Python3 提交中击败了
50.45%
的用户
内存消耗：
15 MB
, 在所有 Python3 提交中击败了
5.03%
的用户 
'''